home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Libraries / BSDFileLib 1.0.2 / BSDFileLib.cp < prev    next >
Encoding:
Text File  |  1997-08-01  |  2.0 KB  |  104 lines  |  [TEXT/CWIE]

  1. /*
  2.      File:        BSDFileLib.h
  3.  
  4.      Contains:    Easy File Handling Routines.
  5.  
  6.      Version:    Technology:    Torture Chamber v1.0
  7.                  Package:    BSDFileLib v1.0.2
  8.  
  9.      Copyright:    © 1997, BuggySoft™ Development.
  10.                  By Scott Dunbar
  11. */
  12.  
  13. #ifndef __TYPES__
  14. #include <Types.h>
  15. #endif
  16.  
  17. #ifndef __FILES__
  18. #include <Files.h>
  19. #endif
  20.  
  21. #ifndef __FOLDERS__
  22. #include <Folders.h>
  23. #endif
  24.  
  25. #ifndef _STDIO
  26. #include <stdio.h>
  27. #endif
  28.  
  29. #ifndef _STRING
  30. #include <string.h>
  31. #endif
  32.  
  33. #ifndef __BSDFILELIB_
  34. #include "BSDFileLib.h"
  35. #endif
  36.  
  37. /*
  38.     Name: ReadFile()
  39.     Usage: ReadFile(vRefNum, dirID, fileName, fileData);
  40. */
  41.  
  42. void ReadFile (short vRefNum, long dirID, Str31 name, Handle data) {
  43. FSSpec    file;
  44. long    byteCount;
  45. short    refNum;
  46.  
  47.     if (FSMakeFSSpec(vRefNum, dirID, name, &file) != fnfErr) {
  48.         FSpOpenDF(&file, fsRdPerm, &refNum);
  49.         byteCount = GetHandleSize(data);
  50.         HLock(data);
  51.         FSRead(refNum, &byteCount, data);
  52.         HUnlock(data);
  53.         FSClose(refNum);
  54.     }
  55. }
  56.  
  57.  
  58. /*
  59.     Name: WriteFile()
  60.     Usage: WriteFile(vRefNum, dirID, fileName, creatorType, fileType, fileData);
  61. */
  62.  
  63. void WriteFile (short vRefNum, long dirID, Str31 name, OSType creatorType, OSType fileType, Handle data) {
  64. FSSpec    file;
  65. long    byteCount;
  66. short    refNum;
  67.  
  68.     FSMakeFSSpec(vRefNum, dirID, name, &file);
  69.     FSpCreate(&file, creatorType, fileType, smSystemScript);
  70.     FSpOpenDF(&file, fsWrPerm, &refNum);
  71.     byteCount = GetHandleSize(data);
  72.     HLock(data);
  73.     FSWrite(refNum, &byteCount, data);
  74.     HUnlock(data);
  75.     FSClose(refNum);
  76. }
  77.  
  78.  
  79. /*
  80.     Name: ReadPrefsFile()
  81.     Usage: ReadPrefsFile("\pMy Prefs", fileData);
  82. */
  83.  
  84. void ReadPrefsFile (Str31 name, Handle data) {
  85. long    dirID;
  86. short    vRefNum;
  87.  
  88.     FindFolder(kOnSystemDisk, kPreferencesFolderType, true, &vRefNum, &dirID);
  89.     ReadFile(vRefNum, dirID, name, data);
  90. }
  91.  
  92.  
  93. /*
  94.     Name: WritePrefsFile()
  95.     Usage: WritePrefsFile("\pMy Prefs", 'abcd', fileData);
  96. */
  97.  
  98. void WritePrefsFile (Str31 name, OSType creatorType, Handle data) {
  99. long    dirID;
  100. short    vRefNum;
  101.  
  102.     FindFolder(kOnSystemDisk, kPreferencesFolderType, true, &vRefNum, &dirID);
  103.     WriteFile(vRefNum, dirID, name, creatorType, kPreferencesFolderType, data);
  104. }